其他
列表生成式|让你的代码简洁又美观
本文作者:陈丹慧,中南财经政法大学金融学院 本文编辑:任 哲
技术总编:张馨月
爬虫俱乐部云端课程
导读
已知列表list1=[1,2,3,4,5,6,7,8,9,10]
,如果我们想把list1中每个元素都加上2010,生成一个新列表,该怎么做呢?
2list2=[]
3for i in list1:
4 list2.append(i+2010)
5list2
一、语法
可迭代对象
(包括字符串、元组、列表、字典、集合等可被for遍历循环的对象)的基础上生成的。[exp for iter_var in iterable]
iterable
中的元素,再根据表达式exp
计算出一个新值,最后将所有计算出的新值放在列表中,就生成了一个新的列表。[exp for iter_var in iterable if_exp]
iterable
中每个元素,每次迭代都判断下if_exp
表达式是否为真,如果为True
则执行下一步,将返回元素通过exp得到一个新值;如果为False
,则丢弃该元素,进行下一次迭代。最后,所有通过exp计算出来的新值将以一个新列表的形式返回。list3=[-4,-2,0,2,4]
中的负数。2list4=[]
3#不用列表生成式
4for x in list3:
5 if x>=0:
6 list4.append(x)
7#使用列表生成式
8list4=[x for x in list3 if x >=0]
9list4
[exp for iter_var_A in iterrable_A for iter_var_B in iterable_B]
作用过程:先迭代iterable_A
中的元素,每当迭代一个iterable_A
中的一个元素,随之就会把iterable_B
中每个元素都迭代一遍,最后根据表达式exp
算出新值,并返回一个新列表。乍一看,是不是头皮发麻。不要怕,看了下面的例子你就会豁然开朗。
给定list5=["星期","周"]
,list6=["一","二","三","四","五","六","七"]
,用列表生成式生成一个新列表list7,将新列表中元素为list5,list6对应位置元素相加,代码如下:
2list6=["一","二","三","四","五","六","日"]
3list7=[]
4#不使用列表生成式
5for i in list5:
6 for j in list6:
7 list7.append("%s"%i+"%s"%j)
8#使用列表生成式
9list7=["%s"%i+"%s"%j for i in list5 for j in list6]
10list7
最后输出结果如下:
二、应用
2list=[k+"身高为"+str(v)+"cm" for k,v in dict.items()]
3list
2[s.strip() for s in list2]
2[d for d in os.listdir("E:/Python/python基础")]
爬虫俱乐部开发的命令更新及常见问题说明
Seminar | 道德培训真的有用吗?
统计年鉴数据整理小技巧
Seminar | 作为飞行员,我比别的CEO多了什么?
利用TensorFlow构建前馈神经网络
推文合集(1)| Stata学习者必看的n篇推文!
Seminar | 诚信的价值
利用tushare获取股票数据及实现可视化
从Excel到Stata的“摆渡车”——import excel命令
光阴十载,见证了《经济研究》中的“高被引”
利用tushare获取股票数据
这些年,经管类C刊都在研究什么?
Seminar | 眼见为实吗?高管面部可信度、审计师任期与审计费用
Seminar | 恐怖袭击与CEO薪酬
代码补全,主题更换,Jupyter Notebook原来可以这样用?
【爬虫实战】“双十一”微博热搜实时跟进
微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。